//
//  YNGroupAndDiscussion.h
//  Messenger
//
//  Created by iOS on 15/3/26.
//  Copyright (c) 2015年 YN-APP-iOS. All rights reserved.
//

#import "XMPPModule.h"
#import "YNXMPPprotocol.h"

@class XMPPIDTracker;

@interface YNGroupAndDiscussion : XMPPModule
{
    XMPPIDTracker *xmppIDTracker;
}

- (instancetype)initWithDelegate:(id<YNXMPPprotocol>)delegate;

- (id)initWithGroupDispatchQueue:(dispatch_queue_t)queue;

/**
 * 概述: 创建讨论组
 * @pram array 讨论组成员
 */
- (void)creatDiscussionWithUsers:(NSArray *)array;

/**
 * 概述: 创建群
 * @pram array          群成员
 *       groupName      为群号,只能是字母、数字 (我也不晓得这是什么)
 *       naturalName    群名称 (必填)
 *       subject        群公告 (通常为nil)
 *       desc           群描述
 */
- (void)creatGroupWithUsers:(NSArray *)array GroupName:(NSString *)groupName NaturalName:(NSString *)naturalName subject:(NSString *)subject Desc:(NSString *)desc;

/**
 * 概述: 群和讨论组添加成员
 * @pram groupName 群或讨论组ID
 *       array     添加的成员列表
 */
- (void)addUserWithGroupName:(NSString *)groupName Users:(NSArray *)array;

/**
 * 概述: 退出群和讨论组
 * @pram groupName 群或讨论组ID
 */
- (void)leaveGourpWithGroupName:(NSString *)groupName;

/**
 * 概述: 获取群信息及群成员
 * @pram groupName 群ID
 */
- (void)getGroupInfoWithGoupName:(NSString *)groupName;


/**
 * 概述: 获取群共享文件
 * @pram groupName 群ID
 */
- (void)getFileOfGroupShareWithGoupName:(NSString *)groupName;

/**
 * 概述: 获取讨论组信息及讨论组成员
 * @pram groupName 讨论组ID
 */
- (void)getDiscussionInfoWithDiscussionName:(NSString *)DiscussionName;

/**
 * 概述: 获取项目组信息及项目组成员
 * @pram groupName 项目组ID
 */
- (void)getProjectTeamInfoWithTeamName:(NSString *)ProjectTeamName;


/**
 * 概述: 获取一批用户的详细信息
 * @pram memberArray 用户ID数组
 */
- (void)getUserListWithUserNoList:(NSArray *)memberArray;
/**
 * 概述: 修改群和讨论组公告
 */
- (void)modifyGroupSubject:(NSString *)subjuct GroupName:(NSString *)groupName;




////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////


#pragma mark - undetermined method

/**
 * 概述: 修改群成员角色(未实现)
 */
- (void)modifyGroupUserIdentityWithGroupName:(NSString *)groupName UserName:(NSString *)userName Role:(int)role;

/**
 * 概述: 踢出群和讨论组成员(未实现)
 */
- (void)deleteGroupUserWithGroupName:(NSString *)groupName Users:(NSArray *)array;

/**
 * 概述: 解散群或讨论组(未实现)
 */
- (void)dismissGoupWithGorupName:(NSString *)groupName;

/**
 * 概述: 删除群共享文件
 */
- (void)deleteGroupShareFile:(NSString *)fileId;

/**
 * 概述: 重命名群共享文件(未实现)
 */
- (void)renameGroupShareFile:(NSString *)fileId FileName:(NSString *)fileName;

@end




